Top Ad unit 728 أ— 90

آخر الفيديوهات!

دارة قيادة المحركات (MOTOR DRIVER L298)




سأتحدث في هذه التدوينة عن استخدام الدارة المتكاملة L298 و هي دارة تستخدم لقيادة محركين كهربائيين بتيار أعظمي 2أمبير لكل محرك , و تتميز بسهولة التحكم و تحملها لفولتيات حتى 36 فولت .
استخدام الدارة المتكاملة بحد ذاته يحتاج مركبات الكترونية جانبية , مثل الدايودات و المقاومات و مبددات الحرارة , لذلك أُفضل الحديث عن القطعة التي تسمى L298 Module و هو لوحة جاهزة تسهل التعامل مع هذه الدارة المتكاملة و تختصر الوقت
مبدأالتحكم

لهذه القطعة عدة مداخل و هي :

مداخل المحركات : و عددها 4 مداخل و موزعة بواقع مدخلين في كل جهة , و يربط بهما المحرك الكهربائي

تكون هذه المخارج مرقمة ب OUT1-OUT4 , نربط المحرك الأول بالمدخلين OUT1 ,OUT2  و المحرك الثاني بالمدخلين OUT3,OUT4 هكذا نستطيع التحكم بسهولة باتجاه دوران المحرك ,

هناك المداخل ENA,ENB هذان مدخلان التفعيل , إذا تم تطبيق صفر منطقي LOW فإن المحرك لن يدور ابداً و سيتوقف , و اذا كان بوضع التفعيل HIGH فإن التحكم ينتقل عن طريق المداخل IN1-IN4 بصورة عامة و توفيراً للمداخل Pins في الأردوينو , يتم وضع jumper صغير بين هذه المداخل مع ال 5v لتفعيلها دائماً . 
التحكم يكون عن طريق المداخل من IN1-IN4 حيث أن IN1 يتحكم بالمدخل OUT1 و الIN2 يتحكم ب OUT2 و هكذا , فبتطبيق 1 منطقي "5 فولت" على مدخل IN1 مثلاً سيتم تمرير التيار ممن خلال OUT1 و عند تطبيق 0 منطقي سيتم ايقاف مرور التيار عبر OUT1 .هذا مثال بسيط لكيفية التحكم بمحرك .توصيلة المداخل مع الأردوينو سهلة , من المفضل توصيلها مع مداخل تدعم ال PWM مثل 3,5,6,9,10,11  لنستطيع التحكم بسرعة المحرك .
 سنقوم بعمل برنامج يقوم بدوران المحرك مع و عكس عقارب الساعة و توقيفه بسهولة

const int IN1=3;
const int IN2=5;
const int IN3=6;
const int IN4=9;
void setup() {
  // fIRST , define the Motor's pin as an OUTPUT
pinMode( IN1 ,OUTPUT);
pinMode( IN2 ,OUTPUT);
pinMode( IN3 ,OUTPUT);
pinMode( IN4 ,OUTPUT);

}
void ClockWise(){
  //When we want to let Motor To Rotate clock wise
  // just void this part on the loop section .
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,HIGH);
  digitalWrite(IN3,HIGH);
  digitalWrite(IN4,LOW);
}
void CounterClockWise(){
  //When we want to let Motor To Rotate Counter clock wise
  // just void this part on the loop section .
  digitalWrite(IN1,HIGH);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,HIGH);
}
void Stop(){
  //When we want to let Motor To Rotate clock wise
  // just void this part on the loop section .
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,LOW);
}

void loop() {
  // put your main code here, to run repeatedly:
 ClockWise();delay(2000);
 Stop();delay(500);
 CounterClockWise();delay(2000);
 Stop();delay(500);
}


                                                                   

ليست هناك تعليقات :

صور المظاهر بواسطة fpm. يتم التشغيل بواسطة Blogger.